如何禁用@typescript-eslint/explicit-function-return-type为some(),filter(),forEach()?
每次都boolean为some()andfilter()和voidfor声明一个返回类型是很烦人的forEach()。
[2, 5, 8, 1, 4].some(elem => elem > 10)
Run Code Online (Sandbox Code Playgroud)
[2, 5, 8, 1, 4].some((elem):boolean => elem > 10)
Run Code Online (Sandbox Code Playgroud)
我希望能够使用第一个模式(标记为“无效”)而不会从此规则中出错。
通过文档后,似乎没有直接的方法来检查字符串数据类型的最小/最大长度。
但是,有没有办法使用一些自定义类型声明字符串数据类型,以便它检查字符串长度是否在给定的范围内?
我试图从库中导入所有内容作为哈希,修改它,并重新导出修改后的哈希,而不知道库中的所有命名导出.例如:
import * as reactBootstrap from 'react-bootstrap';
wrappedReactBootstrap = doFunnyThingsTo(reactBootstrap);
export {
...wrappedReactBootstrap
};
// or
export wrappedReactBootstrap;
Run Code Online (Sandbox Code Playgroud)
我对https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export的理解是规范不允许以下内容.有人可以证实吗?
显然,循环是不可能的,因为导出和导入语句必须是顶级的.
Uint8Array.toString(),但不是相反。有谁知道我在不创建自己的解析器的情况下执行此操作的简单方法?如何将objects/dict(?)属性传播到新的object/dict中?
简单的Javascript:
const obj = {x: '2', y: '1'}
const thing = {...obj, x: '1'}
// thing = {x: '1', y: 1}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
regions = []
for doc in locations_addresses['documents']:
regions.append(
{
**doc, # this will not work
'lat': '1234',
'lng': '1234',
}
)
return json.dumps({'regions': regions, 'offices': []})
Run Code Online (Sandbox Code Playgroud) 我正在寻找任何指示是否"超类"内置类型将根据规范工作.也就是说,假设任何假设符合ECMAScript的实现,"内置"的"超类"是否通过影响类构造函数的创建算法来破坏运行时?
"Superclassable",我正在创造的一个术语,指的是一个类,通过构造它来返回它,或者将它作为一个函数调用它,如果适用,将使用相同的内部插槽创建([[Prototype]]除外),无论如何它的直接超类是什么,只要类构造函数的初始[[Prototype]]和类原型在重新分配它们之后仍然在每个相应的继承链中.因此,为了成为"超类",类不得 super()在创建期间调用.
当"超级分类"时Array,我希望它看起来像这样:
// clearly this would break Array if the specification allowed an implementation
// to invoke super() internally in the Array constructor
class Enumerable {
constructor (iterator = function * () {}) {
this[Symbol.iterator] = iterator
}
asEnumerable() {
return new Enumerable(this[Symbol.iterator].bind(this))
}
}
function setSuperclassOf (Class, Superclass) {
/* These conditions must be satisfied in order to
* superclass Class with Superclass
*/
if (
!(Superclass.prototype instanceof …Run Code Online (Sandbox Code Playgroud)javascript arrays language-lawyer prototypal-inheritance ecmascript-6
我正在尝试通过TS 中可用的可选链接提供的安全性访问动态属性。然而,这似乎是无效的。
export const theme = {
headers: {
h1: {
},
h6: {
color: '#828286'
},
},
}
console.info(theme?.headers?.['h6']?.color ?? '#000') //will pass
console.info(theme?.headers?.['h1']?.color ?? '#000') //will fail
Run Code Online (Sandbox Code Playgroud)
Identifier expected. TS1003
10 | const StyledTypography = styled.div`
11 | margin: 0;
> 12 | color: #000; ${({theme}) => theme?.headers?.[variant]?.color ?? '#000'}
| ^
13 | `
14 | return (
15 | <StyledTypography as={variant}>
Run Code Online (Sandbox Code Playgroud)
似乎可选更改将应用于[]作为类型的可选,但不适用于内部的值。
我怎样才能使这个成为可选而不必做[undefined || someDefaultValue]?
第一次使用 Context API,请耐心等待。
我有一个本地 JSON 文件,我试图从中获取响应并将响应放入 Context API 中,以便我可以在应用程序中全局使用。
在本地运行应用程序时,出现空白屏幕,并且页面似乎无法加载。该页面处于无限循环中,因此我看不到它是否正在加载。
代码沙箱在这里。
知道我可以更改什么才能将数据响应成功引入 Context API?
apiContext.js:
import React, { useContext, useState, useEffect, createContext } from "react";
import axios from "axios";
const APIContext = createContext();
function APIContextProvider({ children }) {
// Initialize state
const [data, setData] = useState([]);
const [isLoading, setIsLoading] = useState(true);
// Fetch data
useEffect(() => {
let url = "../db.json";
axios
.get(url)
.then(function (response) {
setData(response.data.machines);
setIsLoading(false);
console.log(response.data.machines);
})
.catch((error) => console.log(error));
}, []);
return (
<APIContextProvider …Run Code Online (Sandbox Code Playgroud) 我试图了解以下方法中扩展语法与切片方法之间的区别.
假设我想制作一个数组的实际副本,我可以使用扩展语法轻松地做到这一点
var fruits = ["Banana", "Chips" , "Orange", "Lemon", "Apple", "Mango"]
var newCitrus = [...fruits]
Run Code Online (Sandbox Code Playgroud)
如果我console.log这个
["Banana", "Chips", "Orange", "Lemon", "Apple", "Mango"]
Run Code Online (Sandbox Code Playgroud)
但我也可以使用切片方法创建一个数组的副本.考虑到上面的相同数组,如果我做这样的事情......
var citrus = fruits.slice(0);
Run Code Online (Sandbox Code Playgroud)
然后控制台记录它,它将给我完全相同的数组,我将通过传播语法
["Banana", "Chips", "Orange", "Lemon", "Apple", "Mango"]
Run Code Online (Sandbox Code Playgroud)
由于它们都需要大约相同的时间来编码/写入,这有什么区别?我通常应该选择哪种方法?
javascript ×9
ecmascript-6 ×3
typescript ×3
object ×2
arrays ×1
axios ×1
babel ×1
constraints ×1
eslint ×1
node.js ×1
python ×1
reactjs ×1
slice ×1
string ×1
validation ×1