我想在class Whatever < ActiveRecord::Base
validates :name, presence: true,
unless: Proc.new { |a| a.firstname.present? || a.surname.present? }
end
界面添加一个属性someString
,以便我可以JQueryStatic
访问它。
在$.someString
中,我有以下代码:
index.ts
interface JQueryStatic {
someString: string;
}
$.someString = "string";
的类型为$
,但我收到以下错误:
Property&#39; someString&#39;在类型&#39; JQueryStatic&#39;。
上不存在
答案 0 :(得分:2)
您可以使用扩展jQuery类型声明的环境类型声明,如下所示:
declare interface JQueryStatic {
someString: string;
}
将其放入代码中某处的.d.ts
文件中,并确保其tsconfig.json
中包含(或不包括在内)。
为什么这样做?
declare
位使这个&#34;环境&#34; - 在&#34;中存在JQueryStatic
某个someString
成员&#34;。 TypeScript是聪明的,并且认为在其他地方还有另一个JQueryStatic
环境声明(在你的情况下是jQuery类型和&#34;合并&#34;它们在一个JQueryStatic
接口声明中一起。
答案 1 :(得分:1)
$
的现有类型信息位于声明文件中(您可能已下载)。如果您想将新的界面声明合并到现有界面中,请将您的声明放入jquery-extensions.d.ts
文件中:
interface JQueryStatic {
someString: string;
}
如有必要,请在代码顶部添加此新文件的参考路径:
/// <reference path="../path/to/jquery-extensions.d.ts" />