ts实战系列四:复合类型

本文介绍了TypeScript中的any和联合类型,强调避免过度使用any以保证类型安全。void用于表示无返回值函数,Array和元组展示了其在类型定义和Reactcustomhook中的应用。还讨论了类数组对象与数组的区别和元组作为定制hook返回值的优势。
摘要由CSDN通过智能技术生成

2. any类型和联合类型:

any表示这个值可以是任何值,意味着不做任何类型检查,尽量避免使用any.

let a: any = 4
let a: number | string = `12`

let looselyTyped: any = 4;
// 由于声明为any,无法在静态检查阶段发现这个错误,looselyTyped的值是4,没有ifItExists方法.
looselyTyped.ifItExists();

3. void:

一般用在表示函数不返回任何值或者返回undefined,因为函数不返回任何值的时候 === 返回undefined.

export const useMount = (fn: () => void) => {
  useEffect(() => {
    fn();
  }, []);
};

3. Array:

在TS中,array一般指所有元素类型相同的值的集合.

. let a: number[] = [1, 2, 3, 4]. let list: Array<number> = [1, 2, 3];. interface User {
        name: string
    }
    const john = {name: 'john'}
    const jack = {name: 'jack'}
    let personList = [john, jack] // 这里 john 和 jack 都是 User 类型的

(1). arguments是类数组对象,有length、下标[0],但是没有方法.

function test() {
  console.log(arguments)
  let arr: any[] = arguments;    // 报错
}

:. 类数组对象和数组都是对象生的,区别在于数组比类数组对象多了很多方法.. ts帮它们都定义的接口,:
    IArguments、类似还有HtmlCollection、NodeList.

4. 元组Tuple:

. 特点:
    a. 混合类型的"数组"
    b. tuple是"数量固定,类型可以各异"版的数组

②. let user: [strinng, number] = ['david', 12];. const [users, setUsers] = useState([]). custom hook的优雅:
    const useHappy = () => {
        // ....
        // obj返回:
        // return {isHappy, makeHappy, makeUnHappy}
        return [isHappy, makeHappy, makeUnHappy]
    }
    const SomeComponent = () => {
        // 如何接收obj返回:
        // const {isHappy: tomIsHappy, makeHappy: makeTomHappy, makeUnHappy: makeTomUnHappy} = useHappy(false)
        const [tomIsHappy, makeTomHappy, makeTomUnHappy] = useHappy(false)
        // ...
    }
    a. 在React中,可能使用tuple作为custom hook的返回值,直接使用结构赋值.
    b. 如果用obj返回也能达到效果,但是需要将isHappy重命名为tomIsHappy.
    c. 使用tuple的好处,便于使用者重命名.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常好的选择!Vue 3与TypeScript结合使用可以提供更好的开发体验和类型检查。 首先,确保你已经安装了最新版本的Vue CLI来创建一个新的Vue 3项目。你可以使用以下命令安装Vue CLI: ``` npm install -g @vue/cli ``` 创建一个新的Vue 3项目: ``` vue create my-project ``` 在创建项目时,选择"Manually select features",然后选择 "TypeScript" 作为你的特性之一。 创建完项目后,你可以在 `src` 目录下找到一个 `main.ts` 文件。这是Vue 3项目的入口文件。你可以使用这个文件来初始化Vue应用并配置一些全局设置。 接下来,你可以创建一个新的Vue组件,并使用TypeScript为其添加类型检查。在 `.vue` 文件中,你可以使用 `<script lang="ts">` 标签来指定使用TypeScript。 这是一个简单的示例: ```vue <template> <div> <h1>{{ message }}</h1> <button @click="increment">Increment</button> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ data() { return { message: 'Hello Vue 3 with TypeScript', count: 0, }; }, methods: { increment() { this.count++; }, }, }); </script> ``` 这里我们使用了 `defineComponent` 函数来定义一个Vue组件,并在 `data` 函数中指定了 `message` 和 `count` 属性,并在 `methods` 中定义了一个 `increment` 方法。 这只是一个简单的示例,你可以根据你的实际需求来使用Vue 3和TypeScript进行实战开发。你可以通过使用TypeScript的接口、类型别名和泛型等功能来增强你的代码的类型安全性。 希望这些信息对你有帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值