이와 같이 문서화 된 방법을 사용하여 knockout
정의를 설치했습니다.외부 라이브러리 d.ts에서 선언 된 인터페이스를 확장하는 방법?
npm install @types/knockout
잘 작동하므로 어디서나 가져올 수 있습니다.
import * as ko from "knockout";
그러나 일부 맞춤 구성 요소는 KnockoutStatic
인터페이스로 확장됩니다. 내가 <reference ... />
및 namespace
모듈을 사용하여 거대한 TS 응용 프로그램을 기반으로 마이 그 레이션하는 중이 야. 이전에는 확장 인터페이스 을 어디서나 쉽게으로 선언하고 선언이 병합되었습니다. 내 확장 프로그램이 이렇게 생겼다고 가정 해 봅시다.
interface KnockoutStatic {
doSomething(): void;
}
내가 이런 식으로 선언 한 파일 KnockoutExtensions.d.ts
을 만들려고했습니다.
import "knockout";
declare module "knockout" {
export interface KnockoutStatic {
doSomething(): void;
}
}
하지만 어딘가에 모두 knockout
내 확장을 가져올 때, TS는 여전히 doSomething
전화를 확인할 수 없습니다. 타이프 2.0 새로운 d.ts
서브 시스템을 사용하여 라이브러리 인터페이스를 확장하는 적절한 방법은
import * as ko from "knockout";
import "./KnockoutExtensions";
ko.doSomething(); // error
무엇인가?
TypeScript 2.0이 설치된 Visual Studio 2015 업데이트 3을 사용하고 있습니다.
이것은 작동하지 않았습니다.이 모듈은 모듈을 사용하지 않았을 때만 작동하지만 순수한 네임 스페이스입니다. –