[英]Importing external dependencies in Typescript
我是打字稿/節點的新手。 我有一個打字稿文件“ order.ts”,我想從中導入“ config.ts”的外部配置依賴項
我的配置文件代碼如下
let config = {
mongoAddress: "mongodb://localhost:27017/dts",
dataDirectory: "../../data/"
};
module.exports = config;
我將配置文件導入訂單文件中,如下所示
import { config } from "../../config";
但是,我得到TS編譯器拋出錯誤“ ...文件不是模塊”。 任何線索我應該如何在打字稿中導入我的外部依賴關系
這里的主要部分是您要導出對象實例。 您正朝着正確的方向前進,但可能會有更簡單的方法。
在這種情況下,例如將其包裝在類中並導出:
export class Config {
mongoAddress = 'mongodb://localhost:27017/dts';
dataDirectory = '../../data/';
}
注意上課前的export
。 可以將同樣的方法應用於接口,枚舉等。通過這種方式導出,可以導入並初始化它:
import { Config } from '../config';
var c = new Config();
console.log(c.mongoAddress);
就像在原始示例中那樣,這不會使它成為變量,而只是將其包裝在一個類中。 這也是為什么必須首先使用new Config()
對其進行初始化的原因。
現在,我假設您只是希望全局訪問這些屬性。 甚至可能是靜態/只讀的,因此您不必每次都初始化類。 利用TypeScript的靜態類型,在這種情況下,示例可以更好地重構為以下形式:
export class Config {
public static readonly mongoAddress: string = 'mongodb://localhost:27017/dts';
public static readonly dataDirectory: string = '../../data/';
}
這樣,調用它就不會那么麻煩了-而且非常安全:
console.log(Config.mongoAddress);
console.log(Config.dataDirectory);
現在,以這種方式導出只是其中一種選擇。 實際上,這完全取決於您在整個應用程序中所使用的庫結構 (或者,取決於第三方庫)。 讀起來有些枯燥,但是我建議您看一下熟悉UMD和模塊等術語的不同結構,以及它們與導入的關系。
希望這可以幫助!
您可以通過2種方式進行導入和導出。
1)默認導出
// config.ts
export const config = {
mongoAddress: "mongodb://localhost:27017/dts",
dataDirectory: "../../data/"
};
export default config;
// your other file
import configs from './config';
注意:在這里,您可以為導入的模塊指定任何名稱;
2)導入時以正確的聲明名稱進行正常導出。
// config.ts
export const config = {
mongoAddress: "mongodb://localhost:27017/dts",
dataDirectory: "../../data/"
};
// your other file
import { config } from './config';
注意:在這里,您必須提供所導出模塊的確切名稱。
導出配置時要遵循的最佳做法。
在代碼中創建帶有靜態變量的靜態類。 這可能意味着這些配置是固定的東西。
module.exports
是導出模塊的節點語法。 Typescript具有關鍵字名稱export
因此您可以使用以下命令:
export const config = {
mongoAddress: "mongodb://localhost:27017/dts",
dataDirectory: "../../data/"
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.