Javascript 如何在Typescript中定义要忽略的项

Javascript 如何在Typescript中定义要忽略的项,javascript,typescript,clearscript,Javascript,Typescript,Clearscript,我有一个应用程序,用于添加JavaScript作为扩展语言。我已经开始在其他项目中使用Typescript,并认为我也会在其他项目中使用它 我的问题是,我在JavaScript环境中暴露了相当多的C#对象/方法/属性。除了插入 // ts-ignore 在每一个例子之上,有没有一种方法可以告诉Typescript某些符号是“已知的” 如果能够具体说明这些函数的输入和输出,这样TS就可以在我没有正确使用它们时通知我,那将是一件好事 如何声明外部符号 例如,在此对象定义的切片中 that.ge

我有一个应用程序,用于添加JavaScript作为扩展语言。我已经开始在其他项目中使用Typescript,并认为我也会在其他项目中使用它

我的问题是,我在JavaScript环境中暴露了相当多的C#对象/方法/属性。除了插入

// 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();
};