热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在JavaScript的类型文件中声明接口

如何解决《在JavaScript的类型文件中声明接口》经验,为你挑选了2个好方法。

我认为可能存在概念上的误解,这是您在此处遇到的问题的基础。听起来您希望这些接口在运行时可用。Typescript接口纯粹是一个编译时概念。他们不编译任何东西。它们在运行时不存在。

我将这部分代码放入了一个名为的文件中interf.d.ts

export namespace Interfaces {
    export interface Interface {
        property: string;
    }
}

然后我创建了文件test.ts

import { Interfaces } from "./interf";

const x: Interfaces.Interface = {
    property: "abc",
};

console.log(x);

我没有编译错误,并且执行得很好。如预期的那样,接口导出。在const你以后出口不需要导出接口(反正它并不能导出接口,它导出一个const声明符合的接口,但是const不是接口)。

但是,如果您试图在已编译的Javascript中找到与您的接口相对应的内容,则由于我上面给出的原因,您将找不到它:它是一个编译时构造。



1> Louis..:

我认为可能存在概念上的误解,这是您在此处遇到的问题的基础。听起来您希望这些接口在运行时可用。Typescript接口纯粹是一个编译时概念。他们不编译任何东西。它们在运行时不存在。

我将这部分代码放入了一个名为的文件中interf.d.ts

export namespace Interfaces {
    export interface Interface {
        property: string;
    }
}

然后我创建了文件test.ts

import { Interfaces } from "./interf";

const x: Interfaces.Interface = {
    property: "abc",
};

console.log(x);

我没有编译错误,并且执行得很好。如预期的那样,接口导出。在const你以后出口不需要导出接口(反正它并不能导出接口,它导出一个const声明符合的接口,但是const不是接口)。

但是,如果您试图在已编译的Javascript中找到与您的接口相对应的内容,则由于我上面给出的原因,您将找不到它:它是一个编译时构造。



2> Tarun Lalwan..:

所以我能够使用JSDoc解决问题

测试文件

export namespace test {
    export interface ITest {
        foo: string;
        bar: number;
    }
}

test.js

/**
 * @type {import("./test").test.ITest}
 */

let x;

x.

而智能感知现在

另外一两件事,我发现的是,如果添加jsconfig.json

jsconfig.json

{
    "compilerOptions": {
        "checkJs": true
    }
}

您的智商进一步提高

更新1

正如@nickzoum所指出的,如果您定义test.d.ts以下内容

/**
 * @type {import("./test").test.ITest}
 */

let x;

x.

然后您也可以在JS中使用以下形式进行智能感知

/** @typedef {import("./test").ITest} ITest */

/** @type {ITest} */
var x = {};
x.


推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • 用JavaScript实现的太空人手表
    用JavaScript实现的太空人手表-JS写的太空人手表,没有用canvas、svg。主要用几个大的函数来动态显示时间、天气这些。天气的获取用到了AJAX请求。代码中有详细的注释 ... [详细]
  • Ihavefollowingjsonarraywhichisgeneratedatruntime.Hencethenumberofnamedatapairsvarie ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • JavaScript无符号右移赋值操作-示例代码:resultexpression其中参数是result任何变量。expression是任何表达式。JavaScript中无符 ... [详细]
author-avatar
mobiledu2502853623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有