使用打字稿进行类型检查

问题描述 投票:0回答:1

在下面的代码中,我指定 setLocale 应通过 LocaleContextValue 接收 Locale 类型的值作为参数。

但是如果我不传递任何值作为参数,为什么 setLocale 函数不会抛出错误?

即使我让它返回像 () => { return “hello” } 这样的字符串类型,它也不会抛出任何错误。

import { createContext, ReactNode, useContext, useState } from "react";

type Locale = "ko" | "en";

interface LocaleContextValue {
  locale: Locale;
  setLocale: (value: Locale) => void;
}

const LocaleContext = createContext<LocaleContextValue>({
  locale: "ko",
  setLocale: () => {},
  // setLocale: () => { return "hello"; },
  // No errors occurred.
});
reactjs typescript
1个回答
0
投票

当您在打字稿中定义类型时,您所说的是必须提供什么,而不是必须使用什么。

当您调用

setLocale
时,您必须提供
Locale
类型的参数,但这并不意味着您必须在函数内部使用该值。

© www.soinside.com 2019 - 2024. All rights reserved.