当使用 TypeScript 检查 JavaScript 代码时,如何转换为与推断不同的类型?Typescript 具有<Type>和as Type语法,但这些在 JavaScript 中无效。
/**
* @param {{id: string, value: number}} details - object with required properties
*/
function stringifyObject(details) {
return `${details.id}: ${details.value}`;
}
const testValue = {id: 'no-value'};
stringifyObject(testValue); // want to cast testValue to ignore missing property
stringifyObject(/** @type {any} */ testValue); // this doesn't work
Run Code Online (Sandbox Code Playgroud) 我正在记录一个包含Python组件和JavaScript组件的库.整个用户文档和Python API文档位于reStructuredText中,使用Sphinx进行处理.JavaScript API位于jsdoc中,并使用jsdoc-toolkit进行处理.主要输出格式为HTML.我是reST,Sphinx和jsdoc的新手.
我已经建立了一个构建系统,因此所有生成的html页面都被转储到一个目录树中.我现在需要在主页面(从reST生成)中插入生成的Javascript文档的链接.这需要是一个相对链接,因为文档可能位于不同安装的不同位置.reST将自动解析完整的URL,但我无法弄清楚如何使其插入相对链接.构造如:ref:和:doc:似乎没有帮助,因为他们希望目标是reST.
有任何想法吗?
我有两种类型的模块:
Require.js主文件:
require.config({
baseUrl: "/another/path",
paths: {
"some": "some/v1.0"
},
waitSeconds: 15,
locale: "fr-fr"
});
require( ["some/module", "my/module", "a.js", "b.js"],
function(someModule, myModule) {
}
);
Run Code Online (Sandbox Code Playgroud)
调解员模式:
define([], function(Mediator){
var channels = {};
if (!Mediator) Mediator = {};
Mediator.subscribe = function (channel, subscription) {
if (!channels[channel]) channels[channel] = [];
channels[channel].push(subscription);
};
Mediator.publish = function (channel) {
if (!channels[channel]) return;
var args = [].slice.call(arguments, 1);
for (var i = 0, l = channels[channel].length; i < l; i++) {
channels[channel][i].apply(this, args);
} …Run Code Online (Sandbox Code Playgroud) 我试图彻底评论我的JavaScript,我正在使用JSDoc.我有一个消耗jQuery对象的函数,我想将参数标记为这样.
目前,我有这个:
/**
* Initializes a login object.
* @param formEl {JQuery} The login form element on the page.
*/
var login = function(formEl){ ... }
Run Code Online (Sandbox Code Playgroud)
但JSDoc无法识别(或正确格式化)"JQuery"作为变量类型.有帮助吗?
我需要创建我们在reactjs应用程序中定义的每个组件的doc文件.我正在寻找可用于创建任何扩展文档的npm,以便它可以提取代码,评论来自我的组件并将其更改为任何扩展名的文档.如何帮助我?我的问题与关于jsdoc的其他问题不同,因为我正在使用jsdoc在reactjs中查找文档.
给定一个将回调函数作为参数的Javascript函数:
var myFunction = function(onSuccess, onFailure) {...}
Run Code Online (Sandbox Code Playgroud)
我如何记录onSuccess返回类型和参数?
当参数类型可以混合时,如何使用JSDoc在JavaScript中记录方法?
我在Dialog对象上有方法,我可以在其中显示HTML或我自己的Viewable对象.JSDoc方法如下所示:
/**
* Can pass in viewable object, or some HTML element
*
* @param viewable viewable {Viewable} or HTML element {HTMLElement} or String {string}
* @param {Boolean} cancelable is cancellable
* @param title string or data object of String and Id {Title:String, Id:String} for setting HTML id value
* @param {Array} actions array of functions actions display buttons on the bottom connecting to the passed in functions
* @param {String} size mode. Can be mini,small,medium,large,maxi. Or …Run Code Online (Sandbox Code Playgroud) Array当数组元素可以是以下任何一个时,如何在JSDoc中记录返回值(和参数):
String,Array).是否可以使用枚举作为JSDoc @param类型声明,如下例所示?
/**
* @enum { Number }
*/
var TYPES = {
TYPE_A: 1,
TYPE_B: 2
}
/**
* @param { TYPES } type
*/
function useTypesEnum( type ) {
}
Run Code Online (Sandbox Code Playgroud)
如果我使用Eclipse之类的IDE等JavaScript,那么应该不会引发警告?
我正在使用JSDoc进行参数文档.
很清楚如何记录参数类型many_prompts,但是记录它返回的函数的正确方法是什么?
/**
* @param {Number} - number of times to prompt
* @return {Function(prompt{Number})} - the returned function
*/
function many_prompts(count) {
return function(prompt) {
for(var i=0; i < count; i++) alert(prompt);
}
}
//Example of use:
var y =many_prompts(3);
y('Hello World');
Run Code Online (Sandbox Code Playgroud) jsdoc ×10
javascript ×7
jsdoc3 ×2
ide ×1
jquery ×1
js-amd ×1
reactjs ×1
requirejs ×1
typescript ×1