这就是我在fruit.ts中所拥有的
export type Fruit = "Orange" | "Apple" | "Banana"
Run Code Online (Sandbox Code Playgroud)
现在我在另一个打字稿文件中导入fruit.ts.这就是我所拥有的
myString:string = "Banana";
myFruit:Fruit = myString;
Run Code Online (Sandbox Code Playgroud)
当我做
myFruit = myString;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
类型'字符串'不能分配给类型'"Orange"| "Apple"| "香蕉"'
如何将字符串分配给自定义类型Fruit的变量?
我想使用打字稿从 Material-UI 扩展 Button 组件的道具,以便能够将其他道具传递给它的孩子。
import { NavLink } from 'react-router-dom';
import { Button } from 'material-ui';
<Button
component={NavLink}
// NavLink props that needs to be added to typescript declarations
activeClassName={classes.activeButton}
exact={true}
to={to}
>
{title}
</Button>
Run Code Online (Sandbox Code Playgroud)
我尝试在 ./app/types/material_ui.d.ts 中添加以下声明:
declare module 'material-ui' {
interface Button {
activeClassName?: any;
exact?: boolean;
to?: string;
}
}
Run Code Online (Sandbox Code Playgroud)
这会引发错误“TS2693:'Button' 仅指一种类型,但在此处用作值。”。
我也试过声明:
import * as React from 'react';
import { PropTypes, StyledComponent } from 'material-ui';
import { ButtonBaseProps } from 'material-ui/ButtonBase';
declare module 'material-ui' { …Run Code Online (Sandbox Code Playgroud)