小编Pat*_*rts的帖子

如何为 some()、filter()、forEach() 禁用 @typescript-eslint/explicit-function-return-type?

如何禁用@typescript-eslint/explicit-function-return-typesome()filter()forEach()

每次都booleansome()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)

我希望能够使用第一个模式(标记为“无效”)而不会从此规则中出错。

typescript eslint

20
推荐指数
2
解决办法
2万
查看次数

在打字稿中声明具有最小/最大长度的字符串类型

通过文档后,似乎没有直接的方法来检查字符串数据类型的最小/最大长度。

但是,有没有办法使用一些自定义类型声明字符串数据类型,以便它检查字符串长度是否在给定的范围内?

javascript string validation constraints typescript

19
推荐指数
1
解决办法
1万
查看次数

在javascript es6中使用... spread语法命名为exports

我试图从库中导入所有内容作为哈希,修改它,并重新导出修改后的哈希,而不知道库中的所有命名导出.例如:

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的理解是规范不允许以下内容.有人可以证实吗?

显然,循环是不可能的,因为导出和导入语句必须是顶级的.

javascript babel ecmascript-6 spread-syntax ecmascript-next

18
推荐指数
1
解决办法
5737
查看次数

如何在nodejs中将字符串转换为Uint8Array类型

  • 如何将节点中的字符串转换为Uint8Array
  • 我通常不使用 Javascript 进行开发,这让我抓狂。他们提供了一种转换Uint8Array.toString(),但不是相反。有谁知道我在不创建自己的解析器的情况下执行此操作的简单方法?
  • 我已经看到了一些其他答案,但它们似乎没有解决这个特定的类类型

javascript node.js

16
推荐指数
3
解决办法
2万
查看次数

如何在chrome dev工具中使用对象扩展语法

我开始使用对象扩展语法来安全地制作对象的副本,同时遵循不变性原则.

我想在chrome开发者控制台中使用它 - 如何做到这一点:

在此输入图像描述

javascript object ecmascript-6 spread-syntax

15
推荐指数
3
解决办法
4319
查看次数

在Javascript中是否有python 2.7x中的Object spread语法?

如何将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)

javascript python object spread-syntax

15
推荐指数
2
解决办法
4951
查看次数

ECMAScript规范是否允许Array为"超类"?

我正在寻找任何指示是否"超类"内置类型将根据规范工作.也就是说,假设任何假设符合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

15
推荐指数
1
解决办法
309
查看次数

JavaScript 可选链接动态属性

我正在尝试通过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]

javascript typescript optional-chaining styled-components

15
推荐指数
1
解决办法
3459
查看次数

如何获取数据并存储在 React Context API 中?

第一次使用 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)

javascript reactjs axios react-context

15
推荐指数
1
解决办法
2万
查看次数

扩展语法与切片方法

我试图了解以下方法中扩展语法与切片方法之间的区别.

假设我想制作一个数组的实际副本,我可以使用扩展语法轻松地做到这一点

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 slice spread-syntax

14
推荐指数
4
解决办法
3928
查看次数