英文:
typescript: how to declare types in another javascript module
问题
假设我有一个导出一些类型供使用的 JavaScript 库(比如 js1.js)。我有一些 TypeScript 代码,放在一个 "script type="module"" 标签中,我想要使用这些类型(比如 ts1.ts),所以我可能会写:
import { sometype } from "./js1.js";
但为了让编译器知道这些类型,我需要一个描述文件(比如 ts1.d.ts)。在这个描述文件中我应该写什么来使一切正常?
我尝试在网上和 TypeScript 文档中寻找一些资源,但没有找到有用的信息。
英文:
suppose that I have a JavaScript library that export some types for uses(says js1.js). and I have some typescript codes that sits in a "<"script type="module">" tag that I want to use these type for(says ts1.ts), so I may write
import {sometype} from "./js1.js"
but in order to let the compiler know these types I need a description file(says ts1.d.ts). what should I put in this description file to make all works?
I tried to find some resource on the web and in typescript documentation but couldnt find something useful.
答案1
得分: 1
- 你的
blah.d.ts
必须与你的blah.js
同名。 - 你的
blah.d.ts
必须导出与你的blah.js
相同的内容,但是使用类型来代替。
或者你可以只有一个 blah.ts
,代码与 blah.js
完全相同,只是加了类型,它会起作用的。
例如:
// blah.js
export function add(a, b) { return a + b; }
// blah.d.ts
export function add(a: number; b: number): number;
或者
// blah.js
export function add(a, b) { return a + b; }
// blah.ts
export function add(a: number; b: number): number { return a + b; }
英文:
- your
blah.d.ts
MUST be named same as yourblah.js
- your
blah.d.ts
must be exporting the same things yourblah.js
export, but with types rather then
Alternatively you may just have blah.ts
with the exact same code as blah.js
but with added types, it'll work same
e.g.
// blah.js
export function add(a, b) { return a + b; }
// blah.d.ts
export function add(a: number; b: number): number;
OR
// blah.js
export function add(a, b) { return a + b; }
// blah.ts
export function add(a: number; b: number): number { return a + b; }
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论