首页
学习
活动
专区
圈层
工具
发布

我 JS 写的好好的,为什么要用那么复杂的TS

前言 我JS写的好好的,为啥要用TS写呢? 本文写给那些完全没有用过TS,也没有使用过结构化语言,对TS有一定的心智负担的前端新手同学。...面对铺天盖地的TS怎么好怎么好的文章,项目中还没真正开始使用到TS的小伙伴,可能只是看了很多的掘金文章,或者看了一遍官方文档,脑子里基本上都是:嗯,是的,我知道TS好,我知道在变量后面加一个冒号一个类型...为什么我写了返回类型,VSCode还是提示返回值是any类型?泛型好复杂,什么时候要用泛型?接口类型定义要写在哪? 来,我们掰开揉碎一点点讲。 TS是谁写给谁看/用的?...function foo(arg: T): T { return arg } 复制代码 当然,泛型的玩法不都是那么简单的,想要玩出更高阶的泛型写法,可以多看看第三方库写的类型定义文件,看看别人是怎么写各种泛型的...需要重用的一般来说就在方法实现的文件夹自定义一个类型,并export出去,方便其他使用者使用。

1.4K10

写给前端新人 - 我 JS 写的好好的,为什么要用那么复杂的TS

前言 我JS写的好好的,为啥要用TS写呢? 本文写给那些完全没有用过TS,也没有使用过结构化语言,对TS有一定的心智负担的前端新手同学。...面对铺天盖地的TS怎么好怎么好的文章,项目中还没真正开始使用到TS的小伙伴,可能只是看了很多的掘金文章,或者看了一遍官方文档,脑子里基本上都是:嗯,是的,我知道TS好,我知道在变量后面加一个冒号一个类型...为什么我写了返回类型,VSCode还是提示返回值是any类型?泛型好复杂,什么时候要用泛型?接口类型定义要写在哪? 来,我们掰开揉碎一点点讲。 TS是谁写给谁看/用的?...function foo(arg: T): T { return arg } 复制代码 当然,泛型的玩法不都是那么简单的,想要玩出更高阶的泛型写法,可以多看看第三方库写的类型定义文件,看看别人是怎么写各种泛型的...需要重用的一般来说就在方法实现的文件夹自定义一个类型,并export出去,方便其他使用者使用。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JSON与JSONP的区别

    ,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据; 5、这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件...js文件中的代码(当然指符合web脚本安全策略的),web页面也是可以无条件执行的。...3、聪明的开发者很容易想到,只要服务端提供的js脚本是动态生成的就行了呗,这样调用者可以传一个参数过去告诉服务端“我想要一段调用XXX函数的js代码,请你返回给我”,于是服务器就可以按照客户端的需求来生成...,不再直接把远程js文件写死,而是编码实现动态查询,而这也正是jsonp客户端实现的核心部分,本例中的重点也就在于如何完成jsonp调用的全过程。...为什么我这次没有写flightHandler这个函数呢?而且竟然也运行成功了!

    2.2K20

    ajax面试题及答案_javase面试题

    文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y AJAX常见面试题 什么是AJAX,为什么要使用Ajax AJAX是“Asynchronous...JavaScript and XML”的缩写。...回调函数就是接收服务器返回的内容! 这里写图片描述 Ajax的实现流程是怎样的? Ajax的实现流程是怎样的? (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象....所谓同源指的是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。 阐述一下异步加载JS。 阐述一下异步加载JS。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数

    1.2K10

    AJAX常见面试题(修订版)

    文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y AJAX常见面试题 什么是AJAX,为什么要使用Ajax AJAX是“Asynchronous...JavaScript and XML”的缩写。...回调函数就是接收服务器返回的内容! ? 这里写图片描述 Ajax的实现流程是怎样的? Ajax的实现流程是怎样的?...所谓同源指的是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。 阐述一下异步加载JS。 阐述一下异步加载JS。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数

    95010

    说说JSON和JSONP,也许你会豁然开朗-转

    ,哪怕跨域js文件中的代码(当然指符合web脚本安全策略的),web页面也是可以无条件执行的。   ...3、聪明的开发者很容易想到,只要服务端提供的js脚本是动态生成的就行了呗,这样调用者可以传一个参数过去告诉服务端“我想要一段调用XXX函数的js代码,请你返回给我”,于是服务器就可以按照客户端的需求来生成...,不再直接把远程js文件写死,而是编码实现动态查询,而这也正是jsonp客户端实现的核心部分,本例中的重点也就在于如何完成jsonp调用的全过程。   ...为什么我这次没有写flightHandler这个函数呢?而且竟然也运行成功了!...ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加标签来调用服务器提供的js脚本。

    1.9K60

    jQuery Ajax 全解析

    jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。...注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。...jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。...如果通过 getScript 加入脚本,请加入延时函数。 这个方法可以用在例如当只有编辑器focus()的时候才去加载编辑器需要的JS文件.下面看一些示例代码: 加载并执行 test.js。...,它会向DOM中的所有元素广播,在上面 getScript() 示例中加载的脚本就是全局Ajax事件。

    10.9K10

    AJAX常见面试题(修订版)

    什么是AJAX,为什么要使用Ajax AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。...回调函数就是接收服务器返回的内容! ? 这里写图片描述 Ajax的实现流程是怎样的? Ajax的实现流程是怎样的?...所谓同源指的是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。 阐述一下异步加载JS。 阐述一下异步加载JS。...理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域 出于安全考虑,服务器不允许ajax跨域获取数据,但是可以跨域获取文件内容。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数

    1.1K20

    说说JSON和JSONP( 含jquery例子)

    ,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据; 5、这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件...js文件中的代码(当然指符合web脚本安全策略的),web页面也是可以无条件执行的。...3、聪明的开发者很容易想到,只要服务端提供的js脚本是动态生成的就行了呗,这样调用者可以传一个参数过去告诉服务端“我想要一段调用XXX函数的js代码,请你返回给我”,于是服务器就可以按照客户端的需求来生成...,不再直接把远程js文件写死,而是编码实现动态查询,而这也正是jsonp客户端实现的核心部分,本例中的重点也就在于如何完成jsonp调用的全过程。...为什么我这次没有写flightHandler这个函数呢?而且竟然也运行成功了!

    1.9K50

    jsonp详解

    原因: Script标签加载到资源后,会将资源当做是js脚本解析,但是我们返回的是json数据,所以导致解析失败。 解决: 必须返回js脚本。...3.2 返回js包装后的json 远程服务器remoteserver.com根目录下有个remote.js文件代码如下: alert('我是远程文件'); 本地服务器localserver.com...3.4 动态的函数调用 聪明的开发者很容易想到,只要服务端提供的js脚本是动态生成的就行了呗,这样调用者可以传一个参数过去告诉服务端“我想要一段调用XXX函数的js代码,请你返回给我”,于是服务器就可以按照客户端的需求来生成...,不再直接把远程js文件写死,而是编码实现动态查询,而这也正是jsonp客户端实现的核心部分,本例中的重点也就在于如何完成jsonp调用的全过程。...为什么我这次没有写flightHandler这个函数呢?而且竟然也运行成功了!

    2.1K40

    前端面试ajax考点汇总_javascript常见面试题

    大家好,又见面了,我是你们的朋友全栈君。...前端面试题总结(四)ajax篇 1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么是ajax: AJAX是“Asynchronous JavaScript and XML”的缩写...举例(jsonp): 动态的创建script标签,通过标签引入一个js文件,这个文件载入成功后会执行我们在url参数中指定的函数,并把我们需要的json数据作为参数传入。...:默认端口是8083 同源策略带来的麻烦:ajax在不同域名下的请求无法实现, 如果说想要请求其他来源的js文件,或者json数据,那么可以通过jsonp来解决 29、Ajax的最大的特点是什么。...Jsonp并不是一种数据格式,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是通过动态创建script标签,然后通过标签的src属性获取js文件中的js脚本,该脚本的内容是一个函数调用

    5.5K30

    推荐13个常用前端公共库CDN服务资源

    首屈一指的就是要推荐下面这个CDNJS了,原因很简单,在服务相对稳定下,它的的JS库是最完整的,很多很好的CDN都是同步它的仓库,还有我写的知名的JSLite 都收录其中?,把我感动坏了?...若你觉得它们缺少哪些好用的函式库,也可以自行提交到网站里,通过审核后就 CDNJS 就会为你分流 js文件!...就连我自己写的JSLite 都主动收录了太感动了 当然你也可以使用国人提供的CDNJS国内镜像网站的又拍云路径来引用相关JS和CSS文件。...国内镜像:http://www.cdnjs.cn/ Ps: CDNJS国内镜像托管在又拍云存储,但是各种JS或者CSS类库比又拍云自己出的JS库丰富很多,而且每天同步更新且支持https协议 (和可惜最近网站提示未备案已经打不开了...七牛云存储 开放静态文件CDN 像 Google Ajax Library,Microsoft ASP.net CDN,SAE,Baidu,Upyun 等 CDN 上都免费提供的 JS 库的存储,但使用起来却都有些局限

    24.9K30

    进阶 | 一份详细的AJAX与跨域处理讲解

    2005年,一个叫Jesse James Garrett的人提出了一个新术语----AJAX,它是一系列技术的组合体,全称是 Asynchronous JavaScript + XML(异步的JS和XML...JS解析符合XML格式的字符串,更新局部页面。 什么是XML?可扩展标记语言。...以上是最初的用法,用的是XML,前端代码片段如下 服务器端的对应代码片段如下: 本地模拟的话,一定要记得开俩不同的端口 例如: node server.js 8001 node server.js...6.其他的方法、属性、事件详见阮一峰博客、MDN文档 习惯用javaScript的前端是不想和XML打交道的,应该用一种符合js风格的数据格式语言。...上述请求响应都没有问题 然而对于AJAX就不行 这是为什么呢,因为 因为 原页面用 form 提交到另一个域名之后,原页面的脚本无法获取新页面中的内容,所以浏览器认为这是安全的。

    96610

    脚本化HTTP 取得响应 指定请求

    脚本化HTTP 下面将会用js代码操纵HTTP 下面将会说明在没有导致web浏览器重新加载任何窗口或者窗体的情况下,脚本实现web浏览器和服务器之间的通信。...事实上,使用一个空的js脚本也可完成此操作 一个百度统计的js脚本如下 (function() { var hm = document.createElement("script"); hm.src...script 通过script元素的src属性设置url发起http get请求,即一种基于script的ajax传输,服务器使用json编码,执行脚本的时候,将其转码,这种的ajax同时也称为jsonp...即这种的跨域可以不受到同源的限制 ajax中的x ajax中的x为xml为一种可选的通信方式,也可以使用JSON完成通信。...ajax 在本地写js的时候,必须搭建一个服务器其AJAX才能工作 原因:因为文件的协议为file而本地的请求的协议为http,由于同源策略的影响,导致无法使用http协议的文件,故本地无法直接使用ajax

    2K40

    Web前端学习笔记之JavaScript、jQuery、AJAX、JSON的区别

    3. ajax ajax全称Asynchronous JavaScript and XML(异步的JavaScript与XML),是网页无需刷新页面、使用js与服务器进行交互的一种技术。...ajax的基本流程可以概括为:页面上js脚本实例化一个XMLHttpRequest对象,设置好服务器端的url、必要的查询参数、回调函数之后,向服务器发出请求,服务器在处理请求之后将处理结果返回给页面,...从ajax的命名中我们就可以看到,数据交换是通过XML格式进行的。在ajax刚出现的时候,绝大多数应用都是采用XML格式,也有少数使用纯文本的。...在ajax领域中JSON取代XML的过程,是一个很好的“用脚投票”的范例。 而JSON的影响力在此后还继续扩大,有些软件将其作为配置文件的格式,有些编程语言也吸纳了JSON的优点。...感觉上是c#受了JSON(或者说js)的影响。但此处是我个人的感觉,如有错误请指出。 回到js自身,对于对象构造有两种方法:基于对象的完整写法,字面量表示法。

    2.8K20

    宝塔面板打不开一直转圈?别慌,一个命令轻松修复(PHP程序员亲测有效)

    今天就来和大家聊聊这个“看似严重实则简单”的问题,以及我亲测有效的终极解决方案:一行命令,原地复活,不丢任何业务数据。为什么面板打不开,网站却正常?...所以当面板“转圈”时,大概率只是以下某个环节出了问题:宝塔的Python后端服务崩溃了;面板配置文件损坏(比如异常关机、磁盘写满);默认端口8888被占用或防火墙拦截;面板内置的SQLite数据库锁死;...经过多次实战验证,我发现最省心、最安全的办法,不是手动查日志、也不是重装面板,而是——用宝塔官方提供的修复脚本。...自动校验并修复面板核心文件(包括前端资源、Python脚本、配置模板);重建缺失的依赖项(比如面板专用的Python环境);完全保留你已部署的网站、数据库、SSL证书、计划任务等所有业务数据;最后自动重启面板服务...一起少踩坑,多写优雅的PHP代码作者:PHP小志(专注PHP后端开发)首发于:个人技术博客

    91710

    Node.js的介绍

    3. ajax ajax全称Asynchronous JavaScript and XML(异步的JavaScript与XML),是网页无需刷新页面、使用js与服务器进行交互的一种技术。...ajax的基本流程可以概括为:页面上js脚本实例化一个XMLHttpRequest对象,设置好服务器端的url、必要的查询参数、回调函数之后,向服务器发出请求,服务器在处理请求之后将处理结果返回给页面,...从ajax的命名中我们就可以看到,数据交换是通过XML格式进行的。在ajax刚出现的时候,绝大多数应用都是采用XML格式,也有少数使用纯文本的。...在ajax领域中JSON取代XML的过程,是一个很好的“用脚投票”的范例。 而JSON的影响力在此后还继续扩大,有些软件将其作为配置文件的格式,有些编程语言也吸纳了JSON的优点。...感觉上是c#受了JSON(或者说js)的影响。但此处是我个人的感觉,如有错误请指出。 回到js自身,对于对象构造有两种方法:基于对象的完整写法,字面量表示法。

    2K00

    Ajaxpro组件

    ajaxpro不仅在后台帮我们实现了这个过程,在前台也封装了请求调用的方法,例如ajax的相关方法,用ajaxpro的方法就可以发送异步请求了,不需要自己封装js或者使用js库。...为什么可以这样写呢?前面说到,ajaxpro会在前台注册脚本,它会根据我们页面对象的相关信息生成如下脚本,所以我们才可以这样调用,而完全不用自己写js或者用jquery库的方法。...这几个都是.ashx结尾的文件,但实际里面都是js代码;这些js有的是作为资源嵌套在dll内部,有的是自动生成的,主要是封装了ajax请求相关方法,以及让我们可以用:名称空间.页面类名称.标记方法名称...为什么要用.ashx而不是用.js呢?因为作为组件内部的资源文件,外部无法直接请求.js文件,而.ashx可以被拦截,然后用Response.Write将内容输出。   ...组件内部定义了多个实现IHttpHandler的类,有的是为了生成js脚本的,对于处理ajax请求,主要分为两类:异步(IHttpAsyncHandler)和非异步(IHttpHandler);在这两类的基础上

    65120
    领券