首页 > 其他分享 >typeScript声明文件的一个注意点:不能使用导入导出语法

typeScript声明文件的一个注意点:不能使用导入导出语法

时间:2023-04-29 20:44:16浏览次数:40  
标签:文件 typeScript 导出 ts 语法 导入 使用 声明

一、起因

使用vue3+ts在写一个demo的时候,用到路由模块的时候,觉得需要自定义一个类型声明,所以写了一个.d.ts声明文件,而这个文件写完的时候,发现vscode老是提示找不到类型声明。

 起初,我以为是ts配置文件写错了,没有在include里面写入这个文件,ts察觉不到。但是后来改来改去发现还是没办法获取文件声明,vscode提示我导入这个文件。我的本意是写了声明文件,就是想省去导入的步骤,所以我不想直接导入。

所以这个bug查了大半天,最后还是新建了一个vue3项目,发现随便写了一个.d.ts文件,其中类型声明可以在任意文件中得到提示。

我原本的.d.ts文件:

import type { RouteRecordRaw } from 'vue-router';

interface amiaRoute extends Omit<RouteRecordRaw, 'meta'> {
  meta: {
    title?: string;
    icon?: string;
  }
}

由于需要第三方的声明,所以直接导入然后继承了,然后发现vscode无法得到提示。

二、解决

全局声明文件不能使用导入,导出语法,因为它会让ts把它当成一个简单的模块文件,而不是声明文件。

所以最后还是妥协了,没办法,需要用到第三方申明的文件,所以还是把它定义成了一个简单的.ts文件,然后导入需要用的地方。

这是我在思否的提问:https://segmentfault.com/q/1010000043741229,应该是快到晚饭提的,所以没人回答,我就自己回答了。

三、总结

1.对于完全自己定义的声明文件,不需要使用导入导出语法,那么把它定义成.d.ts文件,让ts把它解析成声明文件,这样全局都可以直接使用;

2.对于需要使用到第三方的声明的时候,还是老老实实使用模块化语法,把它定义成一个普通的模块,然后在需要它的地方导入它。

标签:文件,typeScript,导出,ts,语法,导入,使用,声明
From: https://www.cnblogs.com/hmy-666/p/17364455.html

相关文章

  • 示波器数据导入MATLAB进行FFT分析的方法
      http://blog.sina.com.cn/s/blog_710421fa0101crm1.htmlpower_fftscope;示波器保存为.csv格式文件,然后用matlab导入新建.mdl模型文件,示波器里面变量保存为uuuu.time=seconduu.signals.values=Volt在工作台运行上面两条指令,直到FFT分析几面里面出现波形,就可以分析了!1......
  • BAPI_ACC_DOCUMENT_POST 解决多行一次性供应商凭证导入问题
     POST函数将一次性供应商的信息放在抬头入参上,业务需要多个一次性供应商一起做凭证时,就满足不了。抬头入参会把所有行的一次性给一样的名称。想起之前做的 IF_EX_ACC_DOCUMENT~CHANGE,于是尝试了一下,发现可以解决IF_EX_ACC_DOCUMENT~CHANGE  "add by itl_csw 28.04.......
  • LaTex排版,矢量图导入
       使用LaTex排版图片,考虑到高清,一般都使用矢量图,制作矢量图可以用PowerPoint、Visio、AdobeIllustrator、draw.io等绘图工具,也可以编程来输出,比如用Python及相关包、Matlab等。导入图片,要用到graphicx 宏包,\includegraphics支持eps,pdf格式,不支持svg,建议直接使用pdf格......
  • idea中方法、注释、导入类折叠或是展开的设置
    如图圈中的信息所示,我们可以对指定代码类型进行默认折叠或是展开的设置,勾选上的表示该类型的代码在文件被打开的时候默认是被折叠的,去掉勾选则反之,例如,当你选中了图中的“Method bodies”时,你的方法打开时,默认是折叠的,方便一下看全所有的方法名及备注。IntelliJIDEA 版本  ......
  • 【TypeScript】document.body.style TS 报错 Cannot assign to 'style' because it is
    报错信息解决方法style对象提供了一个cssText属性,支持设置多种CSS样式:document.body.style.cssText=`width:${targetX}px;height:${targetY}px;transform:scale(${scaleRatio})translateX(-50%);left:50%`;还有其他方法也可以,参考下面的文章参考文章七爪源码:使用......
  • Vue3+typescript如何给元素添加一个Ctrl+s的事件,用于保存文件?
    如下代码,建议用这个,e.keyCode已经过时,后面都是用e.key:string.onMounted(()=>{window.addEventListener('keydown',(e)=>{if(e.ctrlKey&&e.key==='s'){//检查是否按下了Ctrl+Se.preventDefault();//阻止默认行为(保存网页)con......
  • ansible 第一次批量导入ssh-key
    适用环境:所有主机具有相同的用户名和密码实现方式:通过ansiblehosts文件读取主机列表通过expect自动应答脚本出处:githubkubeasz\tools#!/bin/bash#此脚本为批量部署服务器sshkey使用#set-x#checkargscountiftest$#-ne3;thenecho-e"\nUsag......
  • EBS:OM接口表导入销售订单失败
     用户通过集成器程序导入销售订单,过程调用了定义程序包(CUX2056_网络销售订单导入)向OM接口表,再调用标准程序将接口转销售订单用户收到错误信息“价目表价格或销售价格不正确。请输入值为正的价目表价格和销售价格。” 从OM的处理信息表查到最近处理错误信息SELECTm.*,m......
  • WPF中将Canvas导出为png图片
    1publicstaticvoidExportToPng(thisCanvascanvas,Uripath)2{3if(path==null)4{5return;6}7Transformtransform=canvas.LayoutTransform;8canvas.LayoutTransform=null;9Sizesize=newSize(900,600);10......
  • asp.net com,未能转换为类型库。类型库导出程序在处理,时遇到了错误。错误: 找不到元
    我把[assembly:ComVisible(true)]这个设置为true,就报下边的错误错误:程序集“D:\MyDocuments\VisualStudio2005\Projects\ClientOperation\active\bin\Debug\active.dll”未能转换为类型库。类型库导出程序在处理“active.myControl,active”时遇到......