Javascript 如何在Typescript中定义要忽略的项
我有一个应用程序,用于添加JavaScript作为扩展语言。我已经开始在其他项目中使用Typescript,并认为我也会在其他项目中使用它 我的问题是,我在JavaScript环境中暴露了相当多的C#对象/方法/属性。除了插入Javascript 如何在Typescript中定义要忽略的项,javascript,typescript,clearscript,Javascript,Typescript,Clearscript,我有一个应用程序,用于添加JavaScript作为扩展语言。我已经开始在其他项目中使用Typescript,并认为我也会在其他项目中使用它 我的问题是,我在JavaScript环境中暴露了相当多的C#对象/方法/属性。除了插入 // ts-ignore 在每一个例子之上,有没有一种方法可以告诉Typescript某些符号是“已知的” 如果能够具体说明这些函数的输入和输出,这样TS就可以在我没有正确使用它们时通知我,那将是一件好事 如何声明外部符号 例如,在此对象定义的切片中 that.ge
// ts-ignore
在每一个例子之上,有没有一种方法可以告诉Typescript某些符号是“已知的”
如果能够具体说明这些函数的输入和输出,这样TS就可以在我没有正确使用它们时通知我,那将是一件好事
如何声明外部符号
例如,在此对象定义的切片中
that.getMyIP = function () {
var request = new CSRestRequest();
request.AddParameter("user", username);
request.AddParameter("pass", password);
request.AddParameter("command", "getmyip");
var response = client.Execute(request);
return response.Content.trim();
};
CSRestRequest
是使用
jSE.AddHostType("CSRestRequest", typeof(RestRequest));
(RestRequest
是RestSharp提供的符号。)
那么,我如何向Typescript声明
CSRestRequest
是一个外部符号,可以通过new
s生成RestSharp RestRequest对象?您是否尝试过使用.d.ts文件?这些文件包含类型定义,并由ts编译器用于类型检查
您可以在此处找到信息:
例如,您可以创建external.d.ts文件并添加以下内容:
declare class CSRestRequest {
// constructor(/* args */);
// method(): void;
}
然后ts编译器应该提取外部的.d.ts文件并解析类型。通常,typescript使用声明让编译器知道运行时环境中存在但不是在typescript中创建的对象。根据需要的类型安全级别,您可以将外部对象声明为
any
或更具体的类型
使用any
:
declare const CSRestRequest: any;
declare const client: any;
function getIp(username: string, password: string) {
var request = new CSRestRequest();
request.AddParameter("user", username);
request.AddParameter("pass", password);
request.AddParameter("command", "getmyip");
var response = client.Execute(request);
return response.Content.trim();
};
声明一个类(更具体):
将相应的全局变量声明为
any
?这就是赢家!谢谢。我刚到了后一张表格。谢谢
declare class CSRestRequest {
AddParameter(name: string, value: any): void;
};
declare const client: {
Execute(req: CSRestRequest): {
Content: string
}
};
function getIp(username: string, password: string) {
var request = new CSRestRequest();
request.AddParameter("user", username);
request.AddParameter("pass", password);
request.AddParameter("command", "getmyip");
var response = client.Execute(request);
return response.Content.trim();
};