Javascript TypeScript和RegExp
打字稿上写着: 类型为“Javascript TypeScript和RegExp,javascript,regex,typescript,Javascript,Regex,Typescript,打字稿上写着: 类型为“{(模式:字符串,标志?:字符串):RegExp;新建(模式:字符串,标志?:字符串):RegExp;}”的值上不存在属性“$1” 可以通过查看TypeScript 0.8.2附带的lib.d.ts中的定义来解释该类型: 我的问题是,我如何更改/更新它以允许我引用RegExp.$1,RegExp.$2,等等。?最好是我可以单独声明的内容,因为我不打算直接编辑lib.d.ts(在更新时很可能会被替换) 我试过了,但没有用: declare var RegExp: {
{(模式:字符串,标志?:字符串):RegExp;新建(模式:字符串,标志?:字符串):RegExp;}”的值上不存在属性“$1
”
可以通过查看TypeScript 0.8.2附带的lib.d.ts
中的定义来解释该类型:
我的问题是,我如何更改/更新它以允许我引用RegExp.$1
,RegExp.$2
,等等。?最好是我可以单独声明的内容,因为我不打算直接编辑lib.d.ts
(在更新时很可能会被替换)
我试过了,但没有用:
declare var RegExp: {
new (pattern: string, flags?: string): RegExp;
(pattern: string, flags?: string): RegExp;
$1: any;
$2: any;
$3: any;
$4: any;
$5: any;
$6: any;
$7: any;
$8: any;
$9: any;
}
我想它们实际上应该用typestring
声明。但无论如何,它都不能消除错误
除此之外,我还很好奇这到底意味着什么(为什么声明有和没有new
?):
您的声明var
已关闭。接口是开放的,因此您只需编写:
interface RegExp {
$1: string;
$2: string;
// etc
}
关于第二个,这是因为newregexp('[A-Z]')
和RegExp('[A-Z]')
都可以创建一个RegExp(就类型而言,它既是一个可调用的函数,也是一个构造函数)。它给了我“重复的标识符'$1'”。这是Visual Studio中的一个bug—您仍然可以很好地编译。这将在将来的版本中得到修复;但是,请参阅没有解决原始错误。仍然说属性$1
等不存在这对我来说很有用:接口RegExp{$1:string;}var x=/[A-Z]/;控制台日志(x.$1);嗯,这对我不管用。我将创建一个包含该文件的文件,并在有机会时在其上运行node tsc.js
(但现在是下午5点,所以必须等待)
new (pattern: string, flags?: string): RegExp;
(pattern: string, flags?: string): RegExp;
interface RegExp {
$1: string;
$2: string;
// etc
}