当使用 VSCode 的自动导入功能导入 Material-UI 组件时,它将使用命名导入从顶级文件导入:
import { Button } from "@material-ui/core"
Run Code Online (Sandbox Code Playgroud)
但是,我希望自动导入使用完整路径导入:
import Button from "@material-ui/core/Button
Run Code Online (Sandbox Code Playgroud)
我试图找到一种方法来配置 VSCode 的自动导入来执行此操作,但无济于事。
有谁知道这是否可能/如何配置?
我正在用 React 和 Typescript 制作一个 Datepicker,我似乎无法克服useRefref 和 ref.current属性的错误。div当在文档外部单击文档时,我试图让我将引用分配给关闭。
我似乎无法弄清楚我做错了什么。这是我的代码:
function Datepicker({label, placeholder}: DatepickerProps){
const [open, setOpen] = React.useState(false)
const [day, setDay] = React.useState(0)
const [month, setMonth] = React.useState(new Date().getMonth())
const [year, setYear] = React.useState(new Date().getFullYear())
const picker = React.useRef(null) as HTMLElement | null
React.useEffect(() => {
document.addEventListener("mousedown", toggle)
return () => {
document.removeEventListener("mousedown", toggle)
};
}, []);
const toggle = (e: MouseEvent) => {
if (picker && picker.current){
if (picker.current.contains(e.target) === false){
setOpen(false)
} …Run Code Online (Sandbox Code Playgroud) javascript typescript reactjs visual-studio-code react-hooks
在 Typescript 中,当传播 类型的变量时number[] | string[] | boolean[],结果变量的类型为(number | string | boolean)[]:
const a: number[] | string[] | boolean[] = [];
const b = [...a] //Type of b is now (number | string | boolean)[];
Run Code Online (Sandbox Code Playgroud)
这出乎我的意料。我本以为 的类型b是number[] | string[] | boolean[]. 有人知道为什么会出现这种情况吗?
我在将 Typescript 可选链接与 React 组件内的三元运算符结合使用时遇到问题。我不确定它是否无法完成,我的语法已关闭,或者它是一个 Typescript bug。
请注意,在我的特定情况下,我需要使用括号表示法来访问对象的键,而在我给您的示例中,技术上不需要。
没有可选链:
import * as React from "react"
const Component: React.FC<{}> = () => {
const test = {
key1: {
key2: Math.random() === 0 ? null : {
key3: "3"
}
}
}
return(
<div>
{test["key1"]["key2"]["key3"] ? "Key3 Exists" : "Key3 Doesn't Exist" } {*/ Error: Object test["key1"]["key2"] is possibly null. */}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
具有可选的链接
import * as React from "react"
const Component: React.FC<{}> = () => {
const …Run Code Online (Sandbox Code Playgroud)