我想簡單地使用其他commonjs模塊的類型(接口)。我想知道是否有辦法做到這一點,而不必每次只需要類型(沒有實現)導入模塊?使用TypeScript從Visual Studio中的其他commonjs模塊使用類型(接口),而無需導入該模塊?
也是同樣的觀點。如何在不使用「--module commonjs」編譯的情況下在項目中使用commonjs聲明的模塊類型? (只是使用類型,我知道如果你不關心類型安全,你可以做var x = require('x')
),但是這打破了TypeScript的目的)
這似乎是一個有效的用例,因爲人們可能希望創建一個沒有實際實現的庫......但是正如我目前所看到的那樣,即使我不需要它並且已經有了定義文件,您也必須在實際實現中使用import x = require('x')
。
有沒有辦法告訴編譯器它「存在」,類似於declare如何處理變量?
例子:
假設我有我不與任何模塊設置(無)編譯file.ts:
/// <reference path="ExternalCommonJSModule.d.ts" />
export class A {
public foo(bar: ITypeFromExternalCommonJSModule): number {
return bar.x * 2;
}
}
,並假設ExternalCommonJSModule.d.ts看起來是這樣的:
declare module "ExternalCommonJSModule" {
export interface ITypeFromExternalCommonJSModule {
x: number;
}
}
(注意,這個不是編譯,因爲file.ts不是用--module commonjs編譯的,它不會導入實現在.d.ts的N)
正如你的gitbook所說,有時可以使用全局可用的類型。使用全局類型的項目並不意味着在外部使用,而是一個非常具體的服務器實現。謝謝。 – user3667122
typescript如何找到'globals.d.ts'模塊?這個名字是否以某種方式重要? –