相关疑难解决方法(0)

使用React 16的"DetailedHTMLProps,HTMLDivElement>"类型中不存在属性

由于React 16现在允许自定义DOM属性,我试图在我的Typescript代码中利用它:

import * as React from 'react';

<div className="page" size="A4">
</div>
Run Code Online (Sandbox Code Playgroud)

但收到此错误消息:

错误TS2339:类型'DetailedHTMLProps <HTMLAttributes <HTMLDivElement>,HTMLDivElement>'上不存在属性'size'.

这个帖子建议做一个module augmentation,所以我尝试这样:

import * as React from 'react';

declare module 'react' {
     interface HTMLProps<T> {
        size?:string;
    }    
}
Run Code Online (Sandbox Code Playgroud)

相同的错误消息.

最后,我还尝试将其声明page为新的HTML标记:

declare global {
  namespace JSX {
    interface IntrinsicElements {
      page: any
    }
  }
}

<page className="page" size="A4">
</page>
Run Code Online (Sandbox Code Playgroud)

它消除了错误消息,但size在编译的代码中完全忽略了该属性,我最终得到:

<page className="page">
</page>
Run Code Online (Sandbox Code Playgroud)

理想情况下,最后一个是我的首选解决方案.我想在sizepage定义标记旁边使用自定义属性.

tsconfig.js

{
  "compilerOptions": {
    "outDir": "build/dist",
    "module": …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

22
推荐指数
4
解决办法
2万
查看次数

如何使用 React 选择目录?

我需要将文件夹中的所有文件上传到服务器。我正在尝试实现选择目录窗口,而不是选择文件。

正常方式如:

<input type="file" webkitdirectory directory/>
Run Code Online (Sandbox Code Playgroud)

对我不起作用,并显示“选择文件”窗口。

但是当我用这个输入标签创建空的常规 html 文件时,它工作正常。有人知道如何使用 React 实现解决方案吗?

谢谢!

html folderbrowserdialog reactjs

5
推荐指数
1
解决办法
7107
查看次数

类型{}不存在Typescript属性

我在Typescript中有以下代码。为什么编译器会引发错误?

var object = {};
Object.defineProperty(object, 'first', {
     value: 37,
     writable: false,
     enumerable: true,
     configurable: true
});
console.log('first property: ' + object.first);
Run Code Online (Sandbox Code Playgroud)

js.ts(14,42):错误TS2339:类型“ {}”上不存在属性“ first”。

与mozilla 的文档(示例部分)中的代码段相同。

javascript typescript

3
推荐指数
2
解决办法
1万
查看次数