我正在研究类和接口。我有一件事情让我很恼火,这是我第一次处理这类事情,所以请耐心等待。
假设我有这个界面:
// IFoo.d.ts
export default interface IFoo {
foo: string;
bar: number;
}
Run Code Online (Sandbox Code Playgroud)
当我在课堂上实现它时,我会执行以下操作:
// FooModel.ts
import IFoo from './IFoo';
export default class FooModel implements IFoo {
foo: string;
bar: number;
constructor({ foo, bar }: IFoo = { foo: 'hello', bar: 1 }) {
this.foo = foo;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我必须再次实现相同的属性?
这与复制粘贴基本相同,但有严格的约定。另外,我必须分别键入foo6bar次,才能根据接口正确分配默认可选值。
还有更有效的方法来做到这一点吗?
编辑; 我正在努力实现以下目标:
具有属性的类,其中的属性可用于打字稿的检查,如下所示: 接口
export default interface FooDTO {
foo: string;
bar: number;
}
Run Code Online (Sandbox Code Playgroud)
模型
export interface IFoo {
foo: string;
bar: …Run Code Online (Sandbox Code Playgroud) 我在做一个项目时注意到一些奇怪的事情:
我删除了 git 文件夹以重新开始,如下所示:rm -rf .git
然后我添加了遥控器:git remote add origin <url>
现在 VSCode 向我展示了这一点:
为什么我有顶级源代码控制(p2000-raspberry),即使我创建了一个新的 git 项目,我该如何删除它?请帮帮我,我只想要p2000 接收器
我正在研究一个基于对象键管理字符串数组的函数。假设它看起来像这样:
import React, { useState, useEffect } from "react";
import FieldContext from "../contexts/FieldContext";
import io from "socket.io-client";
const [socket, setSocket] = useState(null);
// the `data` array gets changed every second due to a WebSocket, in case that's important
const [data, setData] = useState({ foo: [], bar: [] });
const [connections, setConnections] = useState(["conn1", "conn2"]);
const { checkedFields } = useContext(FieldContext); // ["foo", "moo"];
useEffect(() => {
setConnections(prevConnections => {
// The code below does the following:
// Loop through the …Run Code Online (Sandbox Code Playgroud) 目前我得到了这个 abi:
const stakingAbi = [
'function getStakes(address user) external view returns (Stake[] memory)',
'function stake7Days(uint128 _amount) external whenNotPaused',
'function stake14Days(uint128 _amount) external whenNotPaused',
'function stake30Days(uint128 _amount) external whenNotPaused',
'function stake90Days(uint128 _amount) external whenNotPaused'
]
Run Code Online (Sandbox Code Playgroud)
该Stake结构如下所示:
struct Stake {
uint16 bonusPercentage;
uint40 unlockTimestamp;
uint128 amount;
bool withdrawn;
}
Run Code Online (Sandbox Code Playgroud)
目前 getStakes 函数不起作用,因为 Ethers 不知道它Stake[]是什么,我如何在 ABI 中定义它?
我正在开发一个用 Unity 制作的应用程序,我必须在 Xcode 中构建它才能在应用程序商店中获取它。
现在我在这里遇到了问题。我收到此错误:
library not found for -lGoogleUtilities
Run Code Online (Sandbox Code Playgroud)
然而,当我在调试模式下构建应用程序并在我的 iPad 上测试它时,没有任何问题。但是当我尝试为 TestFlight(工具栏 -> 产品 -> 存档)构建它时,会发生该错误。
我已经按照本教程使其在调试模式下工作(因为我之前也有该错误) https://youtu.be/YHHj1bZUbsc(从 6:20 开始)。
我正在为 Unity 使用“Google Admob”、“CloudOnce”和“Play Services Resolver”插件。在调试版本中,错误(在我在调试版本中修复它之前)是由“Google Admob”引起的。我觉得我在发布版本中缺少框架或某些东西。
我一直在寻找使用 lodash 将项目添加到数组开头的方法。不幸的是,除了 lodash concat (to the end of the array)之外,我似乎找不到其他任何东西。文档似乎也没有提及任何相关内容。
我得到以下代码:
const [collection, setCollection] = useState({
foo: [1, 2, 3]
});
const addToCollection = (key, items) => {
setCollection(prevCollection => ({
...prevCollection,
[key]: _.concat(prevCollection[key] || [], items)
}));
};
Run Code Online (Sandbox Code Playgroud)
但这会将所有项目连接到最后。我不想每次都对它们进行排序,因为这会使用不必要的处理能力,我宁愿将它们添加到开头,因为 API 总是推送已经排序的项目
我将如何实现这一点:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [4, 5, 6, 1, 2, 3];
Run Code Online (Sandbox Code Playgroud)
而不是现在发生的事情:
addToCollection('foo', [4, 5, 6]);
console.log(collection['foo']) // [1, 2, 3, 4, 5, 6];
Run Code Online (Sandbox Code Playgroud) admob ×1
class ×1
ethers.js ×1
git ×1
implements ×1
ios ×1
javascript ×1
lodash ×1
react-hooks ×1
reactjs ×1
typescript ×1
use-effect ×1
use-state ×1
xcode ×1