由于React 16现在允许自定义DOM属性,因此我尝试在Typescript代码中利用它:
import * as React from 'react';
<div className="page" size="A4">
</div>
但收到以下错误消息:
错误TS2339:类型’DetailedHTMLProps
,HTMLDivElement>‘不存在属性’size’。
这个线程建议做一个moduleaugmentation
,所以我尝试了这种方式:
import * as React from 'react';
declare module 'react' {
interface HTMLProps<T> {
size?:string;
}
}
同样的错误信息。
最后,我还尝试声明page
为新的HTML标签:
declare global {
namespace JSX {
interface IntrinsicElements {
page: any
}
}
}
<page className="page" size="A4">
</page>
它消除了错误消息,但是该size
属性在编译后的代码中被完全忽略,而我最终得到:
<page className="page">
</page>
理想情况下,最后一个是我的首选解决方案。我想size
在page
custom标签旁边使用custom属性。
tsconfig.js
{
"compilerOptions": {
"outDir": "build/dist",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom"],
"sourceMap": true,
"allowJs": true,
"jsx": "react",
"moduleResolution": "node",
"rootDir": "src",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"allowSyntheticDefaultImports": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
"allowUnusedLabels": true,
"allowUnreachableCode": true
}
}
HTML支持自定义属性的data-
*属性类型。您可以在此处了解更多信息。
定义和用法 data- *属性用于存储页面或应用程序专用的自定义数据。
data- *属性使我们能够在所有HTML元素上嵌入自定义数据属性。
然后,可以在页面的JavaScript中使用存储的(自定义)数据来创建更具吸引力的用户体验(无需任何Ajax调用或服务器端数据库查询)。
data- *属性由两部分组成:
- 属性名称不应包含任何大写字母,并且必须至少在前缀“ data-”之后一个字符
- 属性值可以是任何字符串
注意: 前缀为“ data-”的自定义属性将被用户代理完全忽略。
不仅size="A4"
可以使用,还可以使用data-size="A4"
例
<div className="page" data-size="A4">
// ....
</div>
学习Typescript并尝试构建一个简单的文本框,在提交文本后显示文本。 我能够很好地捕捉输入,现在试图将其报告给用户。 问题出在编译类型上。脚本给出了以下错误消息:类型“htmldevelment”上不存在属性“value”。 我只是想分配div messageList的值来打印数组(现在还不关心格式)。 我一直在网上搜索,我能找到的大部分都说一定是命名错误,我尝试将名称更改为1,但仍然没有乐
我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。
我试图在登录过程后获得连接的用户模型, 首先,在CanActivate guard检查了带有用户JSON对象的本地存储并发现该对象为空之后,用户将重定向到“/login”URL 然后用户登录并重定向回根URL“/”,在连接过程中我使用AuthService,它将从服务器返回的用户对象保存在用户模型中 这是我的守卫:
我是一个使用Typescript的新手,我得到一个错误提示: 没有与此调用匹配的重载。重载1 of 2,'(道具:只读 类型“{注意:{ 1:{ _ id:number;标题:字符串;正文:字符串;updatedAt:日期;};};“}”不能赋给类型“IntrinsicAttributes” = = = = = = = = = = = = = = = = = = = = = = = = = = =
升级到Angular 6.0和Rxjs到6.0后,我收到以下编译错误:
获取错误:(类型窗口中不存在属性“MktoForms2”