Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在Typescript中进行打字_Javascript_Html_Typescript_Typescript Typings - Fatal编程技术网

Javascript 无法在Typescript中进行打字

Javascript 无法在Typescript中进行打字,javascript,html,typescript,typescript-typings,Javascript,Html,Typescript,Typescript Typings,编辑:我重写了这篇文章,以便更好地解释我所采取的步骤和我面临的问题 我从一个简单的html/js页面开始。 我还使用了cdn中的xregexp var reg=XRegExp(“^lights:(?开|关)$”,“xgi”); var match=XRegExp.exec(“灯:开”,reg); document.body.innerText=“灯光为:”+匹配[“选项”] 尝试在使用XRegExp的文件顶部添加以下行: /// <reference path="./path/to/do

编辑:我重写了这篇文章,以便更好地解释我所采取的步骤和我面临的问题

我从一个简单的html/js页面开始。 我还使用了cdn中的
xregexp

var reg=XRegExp(“^lights:(?开|关)$”,“xgi”);
var match=XRegExp.exec(“灯:开”,reg);
document.body.innerText=“灯光为:”+匹配[“选项”]

尝试在使用XRegExp的文件顶部添加以下行:

/// <reference path="./path/to/downloaded/xregexp.d.ts" />
//

有关此问题的更多信息

请尝试在使用XRegExp的文件顶部添加以下行:

/// <reference path="./path/to/downloaded/xregexp.d.ts" />
//

关于这个问题的更多信息

这并不是一个真正的类型脚本问题:如果您想使用npm软件包,强烈建议使用诸如browserify或webpack之类的依赖关系管理器来管理它们。(如果你只是想找一些东西来处理你的模块,我建议你使用browserify)

如果您真的不想使用npm的惊人功能,那么还有一种黑客方法可以解决这个特定问题:将声明文件更改为声明名称空间而不是模块。现在,您可以在项目中的任何位置有效地使用这些类型

只需对声明文件进行以下两项更改,就可以开始了:

  • 声明命名空间而不是模块:

    declare module 'xregexp' {
    //becomes
    declare namespace xregexp {
    
  • 清除页面底部的导出:

    // remove this: 
    export = OuterXRegExp;
    
现在,您可以在项目中的任何位置调用。例如:

var outerxregexp: xregexp.OuterXRegExp.TokenOpts = { trigger: () => true }

但是再次强调,强烈建议使用browserify,或者这不是一个真正的类型脚本问题:如果您想使用npm包,强烈建议使用类似browserify或webpack的依赖关系管理器。(如果你只是想找一些东西来处理你的模块,我建议你使用browserify)

如果您真的不想使用npm的惊人功能,那么还有一种黑客方法可以解决这个特定问题:将声明文件更改为声明名称空间而不是模块。现在,您可以在项目中的任何位置有效地使用这些类型

只需对声明文件进行以下两项更改,就可以开始了:

  • 声明命名空间而不是模块:

    declare module 'xregexp' {
    //becomes
    declare namespace xregexp {
    
  • 清除页面底部的导出:

    // remove this: 
    export = OuterXRegExp;
    
现在,您可以在项目中的任何位置调用。例如:

var outerxregexp: xregexp.OuterXRegExp.TokenOpts = { trigger: () => true }

但是,再次强烈建议,如果您有一个
tsconfig.json
文件,则需要添加
d.ts
文件,如下所示:

{
    "files": [
        "path/to/definition/xregexp.d.ts",
    ]
}

如果您有一个
tsconfig.json
文件,则需要添加
d.ts
文件,如下所示:

{
    "files": [
        "path/to/definition/xregexp.d.ts",
    ]
}

谢谢你的回复。我试过这个指令,但还是不走运。我已经用更多的细节更新了帖子谢谢回复。我试过这个指令,但还是不走运。更新了文章的更多细节您提到的声明文件声明了一个显式模块。因此,如果您不想使用任何模块,而只想使用全局依赖项(这很好),那么如果不进行一些更改,使其成为全局声明文件,您将无法使用该声明文件。@PelleJacobs,这很有意义。知道了。感谢您提到的声明文件声明了一个显式模块。因此,如果您不想使用任何模块,而只想使用全局依赖项(这很好),那么如果不进行一些更改,使其成为全局声明文件,您将无法使用该声明文件。@PelleJacobs,这很有意义。知道了。谢谢