创建声明文件时我很困惑(d.ts).
例如,我创建了一个NPM包"a"(一个CommonJS模块index.ts):
export interface IPoint {
x: number;
y: number;
}
export default function sub(one: IPoint, two: IPoint): IPoint {
return {
x: one.x - two.x,
y: one.y - two.y
};
}
Run Code Online (Sandbox Code Playgroud)
编译它并生成adts:
export interface IPoint {
x: number;
y: number;
}
export default function sub(one: IPoint, two: IPoint): IPoint;
Run Code Online (Sandbox Code Playgroud)
据我所知,编译器无法为CommonJS生成有效的d.ts.必须使用实用程序作为dts-generator或手动换行:
declare module "a"
{
export interface IPoint {
x: number;
y: number;
}
export default function sub(one: IPoint, two: IPoint): IPoint;
}
Run Code Online (Sandbox Code Playgroud)
好.现在我正在做包"b"(取决于"a"):
/// <reference path="node_modules/a/a.d.ts" />
import sub from "a"
import { IPoint } from "a"
export { IPoint }
export default function distance(one: IPoint, two: IPoint): number {
var s = sub(one, two);
return Math.sqrt(s.x * s.x + s.y * s.y);
}
Run Code Online (Sandbox Code Playgroud)
好的,它有效.现在想要一个依赖于"b"的包"c"(依此类推).
如何在模块"b"中指定依赖关系(链接到"adts")?试图在"node_modules"中指定?或者将"adts"复制到"b"包中的"/ typings /"目录?然后将"adts"和"bdts"复制到"c"包中的"/ typings /"(依此类推)?
"package.json"中的"typings"部分有什么意义?我写的是"b/package.json":
"typings":"./ bdts"
并在编译"c"时得到错误:
Exported external package typings file 'node_modules/b/b.d.ts' is not a module.
Run Code Online (Sandbox Code Playgroud)
据我所知,编译器无法为CommonJS生成有效的d.ts.必须使用实用程序作为dts-generator或手动换行:
实际上没有(从1.6开始).
只需编译模块a将declaration标志传递给tsc.转换器将为您生成声明文件.
你是对的,这些文件不是外部定义文件,而是内部定义文件
然而
如果在模块a中,条目指向生成的文件,则模块b将能够自动查找和使用这些文件package.jsontypingsindex.d.ts
模块a:
declaration国旗typings条目以指向生成的.d.ts文件模块b:
import * as moduleA from 'a'或import {IPoint} from module 'a'没有笨拙///<reference=或手工制作的打字
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |