我遇到的问题是* .d.ts文件从未生成过javascript文件* .js。所以,我不知道造成这个问题的原因。
我也想知道是否可以在MaskedInputDirective.ts
中声明它而不需要* .d.ts文件。这也可能吗?
[MaskedInputTypings.d.ts]
export function createTextMaskInputElement(a: any): any
export function conformToMask(a: any, b: any, c: any): any
[MaskedInputDirective.ts]
import { createTextMaskInputElement } from './MaskedInputTypings'
export { conformToMask } from './MaskedInputTypings'
export class MaskedInputDirective {
private _textMaskInputElement: any;
private _inputElement: HTMLInputElement;
private setupMask() {
if (this.inputElement) {
this.textMaskInputElement = createTextMaskInputElement(
Object.assign({inputElement: this.inputElement}, this.textMaskConfig)
)
}
}
}
答案 0 :(得分:0)
我遇到的问题是* .d.ts文件从未生成过javascript文件* .d.js。
您应该获得std::stringstream ss("144.3 432.3 532.3");
float x, y, z;
ss >> x >> y >> z;
和 .d.ts
。 .js
用于声明,.d.ts
用于运行。没有.js
。
答案 1 :(得分:0)
我认为这里存在一些误解。声明文件(.d.ts文件)是纯粹的描述性工具,用于注释现有包(.js文件)的结构。
注意这个词。 声明某事正在向编译器宣布某些构造(函数,变量)通过您已完成的其他工作隐式存在于范围内。 定义会告诉编译器创建该构造(函数,变量等)。如果您正在使用typescript编写,那么很少需要为自己的代码手动构建.d.ts文件,因为如果编译器负责创建它,则不需要向编译器宣布存在某些内容。
我也想知道是否可以在MaskedInputDirective.ts中声明它而不需要* .d.ts文件。这也可能吗?
是的,但是假设函数createTextMaskInputElement
和conformToMask
存在范围内的某个地方。鉴于您正在创建的是模块,除非您明确导入其定义,否则您无法访问这些模块。 createTextMaskInputElement
和conformToMask
定义在哪里?功能体在哪里?
如果您已编写某些TS代码,则可以直接导入该.ts文件。我相信这是因为你期望.d.ts文件生成一些东西。这看起来像这样:
[MaskedInputUtils.ts]
export function createTextMaskInputElement(a: any): any {
// function implementation
}
export function conformToMask(a: any, b: any, c: any): any {
// function implementation
}
[MaskedInputDirective.ts]
import { createTextMaskInputElement, conformToMask } from './MaskedInputUtils'
export class MaskedInputDirective {
private _textMaskInputElement: any;
private _inputElement: HTMLInputElement;
private setupMask() {
if (this.inputElement) {
this.textMaskInputElement = createTextMaskInputElement(
Object.assign({inputElement: this.inputElement}, this.textMaskConfig)
)
}
}
}