gpt4 book ai didi

typescript - 如何使用 VS Code 在 .vue 文件中使用 Typescript?

转载 作者:搜寻专家 更新时间:2023-10-30 20:31:44 24 4
gpt4 key购买 nike

我正在使用 Visual Studio Code、Vue 2(webpack 模板)和 Typescript。

这是我的 App.vue 组件:

<template>
<div id="app">
<navbar></navbar>
[content here]
</div>
</template>

<script lang="ts">
import Navbar from './components/Navbar'

export default {
components: {
Navbar
}
}
</script>

问题 1:一切正常,但我希望内部有智能感知 <script lang="ts">标记出现在 .ts 文件中,那么我该如何实现呢?

问题 2:在我的 main.ts 中我有 import App from './App' ,但是“./App”带有红色下划线,因为 VS Code 找不到 .ts 文件。有没有办法让编辑器在编译前(编辑时)识别 .vue?

更新(2018-03-25):我强烈推荐所有想要设置 typescript 的人阅读this

最佳答案

对于 Q1,将 Typescript 代码放入单独的 script.ts 文件中,并将其包含在 App.vue 中,例如:

<script lang="ts">
import s from './script'
export default s
</script>

对于第二季度,正如@Oswaldo 所建议的,您可以定义一个包含以下内容的 vue.d.ts 文件:

declare module '*.vue' {
import Vue = require('vue')
const value: Vue.ComponentOptions<Vue>
export default value
}

如果将此文件放在${Project_ROOT}/typings 文件夹中,则需要将此类型文件包含在tsconfig.json

"typeRoots": ["./typings"]

然后你可以导入带有 .vue 后缀的 *.vue 文件:

import App from './App.vue'

如果你不喜欢包含 .vue 后缀,你可以将所有 Vue 组件放在一个文件夹中,例如 src/components 并更改 vue.d.ts 如下:

declare module 'src/components/*' {
import Vue = require('vue')
const value: Vue.ComponentOptions<Vue>
export default value
}

src 被定义为 webpack.base.conf.js 作为绝对路径的别名。

resolve: {
extensions: ['.js', '.vue', '.json', '.ts'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'src': resolve('src')
}
}

然后你需要使用完整路径导入一个没有.vue后缀的组件:

import App from 'src/components/App'

两者都不是优雅的解决方案,但红色下划线消失了。

关于typescript - 如何使用 VS Code 在 .vue 文件中使用 Typescript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42058620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com