在TS项目中混用JS

在TS项目中优雅地混用JS

如果没有做好将所有类型、声明这些东西加上的准备,那么就不要轻易地将一个js文件改成ts文件

为什么要在ts项目中混用js呢,因为有一些比较新的库还没有实现ts化,又或者是一个自己的一个js项目再逐步修改成ts项目,这个时候就需要在一个项目中混用ts文件跟js文件了。

而如果你有以上的需求,但是又没有配置,ts文件里面就会多出来一大堆的红线

在ts文件里面写纯js是可以的,会按照js的方法来进行处理,但是不提倡这么做;并且如果你使用vite来进行打包,还打包不了,vite会给你弹一个报错出来的。

可以通过以下方法在ts项目中混用js,在tsconfig.json文件里面:

{
  "compilerOptions": {
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "allowJs": true,
    "checkJs": false,
  }
}

起作用的是上面那四行代码,允许js,不检查js等等,其他一些无关的就没有贴出来了。

### 如何在Vue项目中同时使用JavaScriptTypeScript文件 #### 配置`tsconfig.json` 为了使Vue项目能够识别并编译TypeScript文件,在项目的根目录下创建或编辑`tsconfig.json`配置文件。此文件用于指定TypeScript编译器选项,确保其设置适合与JavaScript共存。 ```json { "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, "jsx": "preserve", "importHelpers": true, "moduleResolution": "node", "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "sourceMap": true, "baseUrl": ".", "types": [ "webpack-env" ], "paths": { "@/*": [ "src/*" ] }, "lib": [ "esnext", "dom", "dom.iterable", "scripthost" ] } } ``` 上述配置允许混合使用`.js`和`.ts`扩展名的模块,并通过路径别名简化导入语句[^1]。 #### 修改Webpack配置支持TypeScript 如果采用的是自定义构建工具链,则需调整Webpack配置来处理TypeScript源码。对于基于Vue CLI的服务,默认情况下已经集成了对TypeScript的支持;但对于手动配置的情况,应安装必要的加载器: ```bash npm install --save-dev ts-loader ``` 接着更新Webpack配置中的规则部分以匹配TypeScript文件模式: ```javascript // webpack.config.js snippet rules: [{ test: /\.tsx?$/, loader: 'ts-loader', options: { appendTsSuffixTo: [/\.vue$/], }, }] ``` 这使得任何带有`.ts`或`.tsx`结尾的文件都能被正确解析[^2]。 #### 编写组件时兼容两种语言 当在一个Vue单文件组件(SFC)内部混用JSX/TSX语法糖时,可以利用<script setup>标签声明脚本逻辑。下面是一个简单的例子展示如何在同一SFC里结合两者特性: ```html <template> <div>{{ message }}</div> </template> <script lang="ts"> export default defineComponent({ data() { return { message: 'Hello world!' }; } }); </script> <!-- 或者更推荐的方式 --> <script setup lang="ts"> const message = ref('Hello world!'); </script> ``` 这里展示了两种不同的方式去初始化响应式的属性——传统方法以及Composition API风格下的setup函数形式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值