模組 - 何時需要三斜線引用?
當 Anders Hejlsberg 在以下影片大約 35:00 談論外部模組時…
安德斯·海爾斯伯格:介紹 TypeScript
... 為什麼檔案 server.ts 需要對 node.d.ts 使用三斜線參考,而 hello.ts 卻不需要對 server.ts 使用類似的參考?
特別是在 hello.ts 中,他提到已經有了智能感知,並且可以使用從 server.ts 匯出的項目。所以三斜線參考還能增加什麼呢?
答案#1
你在兩種情況下需要使用三斜線引用:
- 當你參考 JavaScript 類型定義時,例如 node、jQuery 等的定義,有一個很棒的收藏可以參考: https://github.com/DefinitelyTyped/DefinitelyTyped
- 當我們想使用
--out進行編譯時,你可以使用/// <reference來引用你的檔案。
當使用 外部模組(例如 amd/commonjs)時,你需要一個 import/require 的組合。如果你不知道這些是什麼意思(amd/commonjs 是 JavaScript 術語,並不是 TypeScript 特有的),你不用擔心。只要使用 /// <reference 並用 --out 編譯即可。
附註:我有一個關於內部模組與外部模組的影片教學:TypeScript 模組解析:內部模組、搭配 RequireJS 的 AMD、搭配 NodeJS 的 CommonJS
更新:
請在新專案中使用 tsconfig.json 而不是參考註解: https://basarat.gitbook.io/typescript/project/compilation-context