当前位置:   article > 正文

07 vue3 集成Typescript 禁用eslint_vue3项目禁用ts

vue3项目禁用ts

一、Vue3.x集成Typescript

npm install --global @vue@cli

vue create my-project-name

vue add typescript
# 会出现命令行,让其选择 第一个选 N 其余都选y
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdXz0QSL-1630392635969)(./images/添加ts.png)]

二、在Vue里使用TS

<template>
    <h1>{{title}}</h1> <br>
    <button @click="setCount">修改count</button>
    count={{count}}
    <br>
    {{reverseTitle}}
</template>

<!-- 设置语言为ts -->
<script lang="ts">
    import {defineComponent} from 'vue'

    // 定义数据接口,可以对key进行校验
    interface News {
        title: string,
        desc: string,
        count: number | string,  // 指定count可以为number或string类型
        content?: string
    }

    // 定义数据
    // let newData: News = {
    //     title: "我是一个新闻标题",
    //     desc: "我是一个新闻描述",
    //     count: 12
    // };

    // 表示实现了该接口
    let newData = {
        title: "我是一个新闻标题",
        desc: "我是一个新闻描述",
        count: 12
    } as News;

    export default defineComponent({
        name: "News",
        data() {
            return newData
        },
        methods: {
            setCount(): void {
                this.count = 122;
            }
        },
        computed: {
            reverseTitle(): string {
                return this.title.split("").reverse().join("");
            }
        }
    })
</script>

<style scoped>

</style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

三、组合式API里使用TS

<template>
    <div>
        User组件
        <button @click="setUsername('旺旺')">修改username</button>
        username:{{username}} --- age:{{age}}
        count:{{count}}
    </div>
</template>

<script lang="ts">
    import {defineComponent, reactive, toRefs, ref} from 'vue'

    // 定义接口
    interface User {
        username: string,
        age: number,

        setUsername(username: string): void,

        getUsername(): string
    }

    export default defineComponent({
        name: "User",
        setup() {
            // 第一种写法
            // let user: User = reactive({
            //     username: "涨三",
            //     age: 10,
            //     setUsername(username: string): void {
            //         this.username = username;
            //     },
            //     getUsername(): string {
            //         return this.username
            //     }
            // });

            // 第二种方法
            // let user = reactive<User>({
            //     username: "涨三",
            //     age: 10,
            //     setUsername(username: string): void {
            //         this.username = username;
            //     },
            //     getUsername(): string {
            //         return this.username
            //     }
            // });

            // 第三种方法
            let user = reactive<User>({
                username: "涨三",
                age: 10,
                setUsername(username: string): void {
                    this.username = username;
                },
                getUsername(): string {
                    return this.username
                }
            }) as User;
            // ref 这样去定义
            let count = ref<number | string>("123");


            return {...toRefs(user), count};
        }
    })
</script>

<style lang="scss" scoped>

</style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

四、禁用eslint

在package.json里的eslint里添加配置

"rules": {
    "generator-star-spacing": "off",
    "no-tabs":"off",
    "no-unused-vars":"off",
    "no-console":"off",
    "no-irregular-whitespace":"off",
    "no-debugger": "off"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzr7Oyyt-1630392635975)(./images/禁用eslint.png)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/323900
推荐阅读
相关标签
  

闽ICP备14008679号